package com.phantom.irpc.framework.core.router;

import com.phantom.irpc.framework.core.common.ChannelFutureWrapper;
import com.phantom.irpc.framework.core.registry.URL;

public interface IRouter {

    /**
     * 刷新路由数组，该数组定义好了需要调用的服务提供者顺序，接下来按照这个随机顺序去做轮询。达到随机的效果
     *
     * @param selector
     */
    void refreshRouterArr(Selector selector);

    /**
     * 获取到请求到连接通道
     *
     * @return
     */
    ChannelFutureWrapper select(Selector selector);

    /**
     * 更新权重信息
     *
     * @param url
     */
    void updateWeight(URL url);

}
